Fullscreen Image

Accruent Siterra 26.4 Release Notes

We're delivering this automatic upgrade to UAT environments on July 16, 2026 and to production environments on August 8, 2026.

Release notes are subject to change until the production release.

Preview new interface

We’re continuing our roll out of a new modern interface for Siterra. Early adopters can sign up to evaluate it.

The preview is unavailable by default. To request access, contact Accruent Support with this subject line:

Request technical preview of new Siterra UI in UAT

When Support enables the preview:

  • Select New Siterra (upper-right) to switch to the new interface.

  • Select it again to return to Classic Siterra.

Most menus and options work the same in the new interface. If you open something that isn’t available yet, Siterra shows the Classic page or dialog and continues operating normally.

Review what we've added to the new Siterra preview in each release.

Improvements and issues fixed

Component

Summary

Reference #

Tasks

Siterra now correctly displays a clear, actionable message when you change the Forecast Date of a task where that date is calculated from subtask durations. The message explains why you cannot edit Forecast Date and instructs you to update the relevant subtask dates or durations to change the parent task’s Forecast Date.

SP-57253

Administration

The Admin > Users table now correctly displays each user only once, even when multiple sessions exist. Users with multi-session support enabled no longer display as duplicate entries in the table.

SP-59896

API

Authorized non-admin API users can now read, create, and update events and event notes based on the access rights and permissions assigned to their roles. The API now enforces granular, role-based permissions consistently across all Events and EventNotes operations.

Example endpoints

GET /events/v1/Events
POST /events/v1/Events
PATCH /events/v1/Events({eventId})
GET /events/v1/EventNotes

SP-59864

API

Authorized API users with Event or Incident read permissions can now access the corresponding lookup endpoints directly. Non-admin users no longer need elevated privileges to retrieve lookup data such as event types, event statuses, incident types, incident statuses, incident sources, and incident priorities.

Example endpoints

GET /events/v1/EventTypes 
GET /events/v1/EventStatuses 
GET /events/v1/incidentTypes 
GET /events/v1/incidentStatuses 
GET /events/v1/incidentSources 
GET /events/v1/incidentPriorities 

Example request (filtered)

GET /events/v1/EventTypes?$filter=Id eq 713230052

SP-59865

API

Authorized (non-admin) API users can now call the Documents Categories GET endpoint when their assigned groups and roles allow it. This endpoint now correctly enforces access rights and permissions based on the user’s group and role assignments.

Example endpoint

GET (Documents Categories endpoint implemented in CategoriesController.cs)

SP-59666

API

Authorized API users can now update asset, site, and vendor addresses based on their role-based permissions, without requiring administrator access. Previously, these PATCH endpoints were available only to administrators. Non-administrator users with the correct role permissions, can now successfully update address records.

Example endpoints

PATCH /address/v1/AssetAddresses({id}) 
PATCH /address/v1/SiteAddresses({id}) 
PATCH /address/v1/VendorAddresses({id})

Also, document revision, download, and upload endpoints now correctly respect role-based permissions. Authorized API users can retrieve document revisions, download documents, and upload task documents without requiring administrator access.

Example endpoints

GET /documents/v1/Revisions
GET /documents/v1/Download
PUT /documents/v1/TasksUpload
POST /documents/v1/TaskUpload

SP-59796

SP-54816

SP-54822

SP-54824

SP-54852

SP-54855

SP-54856

SP-54857

API

Authorized API users can now successfully execute the Documents Upload PUT API for documents located in general libraries.

Example endpoint

PUT /apis/sit/documents/v1/Documents({id})/upload

Example payload

{ "FileName": "example.pdf", "Base64EncodedFile": "..." }

SP-58212

API

Non‑admin users with the correct permissions can now successfully create projects under events without the 400 validation error appearing. This improves the reliability of your automated project creation workflows.

Examples

A non‑admin integration user with project create permissions calls the Project Create endpoint to add a new project:

Copy
POST /api/projects
Content-Type: application/json
Authorization: Bearer {token}
{
"name": "Event Buildout – Phase 1",
"parentId": "{eventId}",
"parentType": "Event",
"startDate": "2026-03-20",
"endDate": "2026-04-15"

The API returns 200 OK (or 201 Created) and the new project is created under the specified event.

If your integration creates a related project using:

Copy
POST /api/projects
Content-Type: application/json
Authorization: Bearer {token}
{
"name": "Onsite Installation",
"description": "Installation work associated with Event EV-12345",
"parentId": "EV-12345",
"parentType": "Event"
}

The project is created under event EV-12345. Permissions are derived through the event’s parent site, so qualified non-admin users can immediately work with the new project using the API.

SP-57789

API

The /documents/v1/libraries GET, POST, and PATCH, endpoints and the /documents/v1/UploadToObjectLibrary POST endpoint now correctly enforce role-based access in line with the user interface. Authorized API users receive a 200 or 201 response and can only read, create, update, or upload to the libraries of the groups and roles they are assigned. Users without sufficient permissions receive standard 401 or 403 error responses without exposing library data. The existing endpoint URLs remain unchanged so that current integrations continue to work without modification.

SP-59659

SP-54844

API

The Libraries GET endpoint now correctly enforces role-based access in line with the user interface. Authorized API users receive a 200 response with only the libraries they are authorized to view. Users without sufficient permissions receive standard 401 or 403 error responses without exposing library data. The existing endpoint URL remains so that current integrations do not require any changes.

Example endpoint

GET /documents/v1/libraries

SP-54844

SP-54845

API

The Libraries PATCH endpoint now correctly enforces role-based access in line with the user interface. Authorized API users can now update document libraries they’re permitted to manage. The endpoint responds with standard 401 or 403 responses for users without sufficient permissions.

Example endpoint

PATCH /documents/v1/libraries({libraryID})

Example payload (simplified):

{ 
	\"description\": \"Updated library description\"
}

SP-54847

API

The Libraries POST endpoint now correctly enforces role-based access in line with the user interface. Authorized API users can now create document libraries.

Example endpoint:

POST /documents/v1/libraries

Example payload (simplified):

{ 
	\"name\": \"Project Library\",
	\"description\": \"Library for project documents\"
}

SP-54846

API

The UploadToObjectLibrary POST endpoint now correctly enforces role-based access in line with the user interface. Authorized API users can now programmatically upload documents directly to an object library. The endpoint responds with standard 401 or 403 responses for users without sufficient permissions.

Example endpoint

POST /documents/v1/UploadToObjectLibrary

Use this endpoint to attach files to the object library by specifying the target object and library in the request. This makes it easier to automate document management workflows and keep object-related documents centralized and up to date.

Example request

POST {{fullyQualifiedDomainName}}{{baseApiPath}}/documents/v1/UploadToObjectLibrary
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary123
------WebKitFormBoundary123
Content-Disposition: form-data; name="libraryId"
12345
------WebKitFormBoundary123
Content-Disposition: form-data; name="fileName"
signed-lease-agreement.pdf
------WebKitFormBoundary123
Content-Disposition: form-data; name="file"; filename="signed-lease-agreement.pdf"
Content-Type: application/pdf
<binary file content here>
------WebKitFormBoundary123-

SP-54848

API

The LibraryTemplates GET endpoint now correctly enforces role-based access in line with the user interface. Authorized API users receive a 200 response with only the library templates they are authorized to view. Users without sufficient permissions receive standard 401 or 403 error responses without exposing library template data.

Example endpoint

GET /documents/v1/libraryTemplates

SP-54849

SP-59660

API

The Sections-GET endpoint now correctly enforces role-based access in line with the user interface. Authorized API users receive a 200 response with only the sections they are authorized to view. Users without sufficient permissions receive standard 401 or 403 error responses without exposing section data.

Example endpoint

GET /documents/v1/sections

SP-54850

API

Authorized non-admin API users can now access Directory lookup endpoints according to their assigned role permissions. Previously, these endpoints required administrator access. The following GET endpoints now correctly respect role-based read permissions:

GET /directory/Groups
GET /directory/VendorTypes
GET /directory/VendorStatuses
GET /directory/NamePrefixes
GET /directory/NameSuffixes

Example endpoint

GET /v1/directory/Groups

Returns HTTP 200 and group data for any authenticated user with Directory read permission.

SP-59921

API

Non-admin users with the role-based permissions to do so, can now create and update sites using the bulk sites API endpoints. Users with the sites CREATE permission can use POST, and users with the sites UPDATE permission can use PATCH, consistent with their assigned access rights and roles.

Example endpoints

POST /v1/bulk/sites (create) PATCH /v1/sites({siteId}) (update) 

Example payload (create)

{ "Name": "New Site", "Address": { "Line1": "123 Main St" } }

SP-59922

BOU

We've made the Bulk Object Updater (BOU) more reliable and responsive. Operations like filtering, sorting, and bulk editing execute more consistently, reducing the chance of intermittent issues such as partial data loads or unexpected behavior during rapid interactions. These changes apply to both Project Task & EA data mode and Subtasks Extension mode.

SP-59783

BOU

We added the Import/Export Workflow permission to Bulk Object Updater (BOU) that enables users to export grid data so that they can edit it externally, and then import the changes into BOU.

SP-59713

BOU

The Mark N/A action now correctly enables when the results contain valid task data, regardless of sort order. Previously, if the first visible row was blank or null, the option was unavailable even when qualifying rows existed below it.

SP-59867

BOU

We updated the confirmation message that displays when you save changes. The message now reads All changes saved, which is clearer, more concise and confirms that your changes were saved.

SP-59624

Export to Excel

When you select Export to Excel in a grid, Siterra now correctly downloads a .xlsx Excel file as expected.

SP-59694

Lease

We improved calculation of semi‑annual incremental lease payment lines when there are multiple escalations and paid lines. Siterra now consistently applies the correct incremental amounts across all affected lines, even when payment periods do not align exactly with calendar dates. This helps you avoid small discrepancies, reduces the need for manual credits or one‑time replacement payments, and ensures that system‑calculated values more closely match landlord invoices and tax documentation.

SP-59206

Lease

Paginated grid views now correctly display unique results on each page.

When multiple records share the same sort value, such as the same date, the same record no longer appears on consecutive pages.

SP-59685

Leases: escalations

When you cancel the dialog to delete orphaned escalations, lease term dates now correctly reset to their original values without saving any changes.

SP-59678

Sites

Site location coordinates now correctly remain when you edit non-location values such as Site Type. Latitude and Longitude values no longer change unless you edit those values directly.

SP-58953

Where used

Where used? in Project Template Task Groups now loads correctly for all trigger types, including Calculated Extended Attribute-based triggers. Reliably view where Task Groups are used, or a clear empty state when they are not used anywhere, without blank dialogs or errors.

SP-58458

Schedule templates

The Schedule table of a schedule template, now correctly preserves the selected page size when navigating between pages using the pagination options. When you select Next or Previous in a schedule template with a large number of tasks, the page size no longer incorrectly resets intermittently. The correct number of rows displays for the page you select.

SP-59821

Leases: escalations

When you change the date of a lease header with escalations to a shorter date period, a dialog displays enabling you to bulk delete orphaned escalations using a new Select All option.

SP-59820

API

Authorized non-admin API users can now read, create, update, and delete incident contacts and incident notes based on the access rights and permissions assigned to their roles. The API now enforces granular, role-based permissions consistently across all IncidentContacts and IncidentNotes operations.

Example endpoints

GET /events/v1/IncidentContacts
POST /events/v1/IncidentContacts
GET /events/v1/IncidentNotes
POST /events/v1/IncidentNotes
PATCH /events/v1/IncidentNotes
DELETE /events/v1/IncidentNotes

SP-54870